package itheima05;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
    模拟B\S服务器
    客户端: 浏览器
    服务器端: ServerSocket

    步骤:
        1.创建服务器端的ServerSocket对象,指定端口号
        2.服务器端ServerSocket对象调用accept方法,获取连接服务器的Socket对象
        3.连接服务器的Socket对象调用getInputStream方法,获取服务器端的字节输入流对象
        4.服务器端的字节输入流对象调用read方法,读取浏览器发送到请求信息

    分析:
        虽然浏览器只给服务器发送一条请求信息,通过打印发现,服务器接收到的信息很多
        发现: 请求信息中,只有第一行包含浏览器要请求的文件路径
        所以服务器端需要获取到浏览器请求信息的第一行,然后解析出浏览器请求的文件的具体路径

        请求信息:
            GET /day14/web/index.html HTTP/1.1
            Host: 127.0.0.1:9999
            Connection: keep-alive
            ....
        只需要:
            第一行 GET /day14/web/index.html HTTP/1.1 中间的内容 day14/web/index.html 代表的是文件路径

 */
public class Server1 {
    public static void main(String[] args) throws IOException {
        //1.创建服务器端的ServerSocket对象,指定端口号
        ServerSocket server = new ServerSocket(9999);

        //2.服务器端ServerSocket对象调用accept方法,获取连接服务器的Socket对象
        Socket client = server.accept();

        //3.连接服务器的Socket对象调用getInputStream方法,获取服务器端的字节输入流对象
        InputStream netIs = client.getInputStream();

        //4.服务器端的字节输入流对象调用read方法,读取浏览器发送到请求信息
        int len = 0;
        byte[] bs = new byte[1024];

        len = netIs.read(bs);

        System.out.println(new String(bs,0,len));
    }
}
